package com.example.config;

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class WebMVCConfig implements WebMvcConfigurer {
    // 请求跨域的后台设置 只能有一个位置上 除了 过滤器进行了前置处理时 针对过滤器响应需要单独设置 其他mvc组件 不需要

//    @Override
//    public void addInterceptors(InterceptorRegistry registry) {
//        registry.addInterceptor(new CustomInterceptor()).addPathPatterns("/**");
//    }

    @Override
    public void addCorsMappings(CorsRegistry registry) {
        // 1. 配置允许跨域的路径（/** 表示所有路径）
        registry.addMapping("/**")
                // 2. 允许跨域访问的源
                .allowedOrigins("*")

                // 3. 允许的请求方法（GET/POST/PUT/DELETE等）
                .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS")
                // 4. 预检请求的有效期（秒），有效期内不再发送预检请求
                .maxAge(168000)
                // 5. 允许的请求头（*表示所有头，包括自定义头如Token）
                .allowedHeaders("*")
                // 6. 是否允许携带Cookie（跨域请求默认不携带Cookie）
                .allowCredentials(true);

    }
}
